<?php    
class html    
{    
    var $dir;        //dir for the htmls(without/)    
    var $rootdir;    //root of html files(without/):html    
    var $name;       //html文件存放路径    
    var $dirname;    //指定的文件夹名称    
    var $url;        //获取html文件信息的来源网页地址    
    var $time;       //html文件信息填加时的时间    
    var $dirtype;    //目录存放方式:year,month,,,,    
    var $nametype;   //html文件命名方式:name    
     
    function html($nametype='name',$dirtype='year',$rootdir='html')    
    {    
        $this->setvar($nametype,$dirtype,$rootdir);    
    }    
              
    function setvar($nametype='name',$dirtype='year',$rootdir='html')    
    {    
      $this->rootdir=$rootdir;    
      $this->dirtype=$dirtype;    
      $this->nametype=$nametype;    
    }    
     
    function createdir($dir='')    
    {    
        $this->dir=$dir?$dir:$this->dir;    
     
        if (!is_dir($this->dir))    
        {    
            $temp = explode('/',$this->dir);    
            $cur_dir = '';    
            for($i=0;$i<count($temp);$i++)    
            {    
                $cur_dir .= $temp[$i].'/';    
                if (!is_dir($cur_dir))    
                {    
                @mkdir($cur_dir,0777);    
                }    
            }    
        }    
    }    
     
    function getdir($dirname='',$time=0)    
    {    
        $this->time=$time?$time:$this->time;    
        $this->dirname=$dirname?$dirname:$this->dirname;    
     
        switch($this->dirtype)    
        {    
        case 'name':    
        if(emptyempty($this->dirname))    
           $this->dir=$this->rootdir;    
        else   
           $this->dir=$this->rootdir.'/'.$this->dirname;    
        break;    
        case 'year':    
        $this->dir=$this->rootdir.'/'.date("Y",$this->time);    
        break;    
     
        case 'month':    
        $this->dir=$this->rootdir.'/'.date("Y-m",$this->time);    
        break;    
     
        case 'day':    
        $this->dir=$this->rootdir.'/'.date("Y-m-d",$this->time);    
        break;    
        }    
     
        $this->createdir();    
     
        return $this->dir;    
    }    
     
    function geturlname($url='')    
    {    
        $this->url=$url?$url:$this->url;    
     
        $filename=basename($this->url);    
        $filename=explode(".",$filename);    
        return $filename[0];    
    }    
     
    function geturlquery($url='')    
    {    
        $this->url=$url?$url:$this->url;    
     
        $durl=parse_url($this->url);    
        $durl=explode("&",$durl[query]);    
        foreach($durl as $surl)    
        {    
          $gurl=explode("=",$surl);    
          $eurl[]=$gurl[1];    
        }    
        return join("_",$eurl);    
    }    
     
    function getname($url='',$time=0,$dirname='')    
    {    
        $this->url=$url?$url:$this->url;    
        $this->dirname=$dirname?$dirname:$this->dirname;    
        $this->time=$time?$time:$this->time;    
     
        $this->getdir();    
     
        switch($this->nametype)    
        {    
        case 'name':    
        $filename=$this->geturlname().'.htm';    
        $this->name=$this->dir.'/'.$filename;    
        break;    
     
        case 'time':    
        $this->name=$this->dir.'/'.$this->time.'.htm';    
        break;    
     
        case 'query':    
        $this->name=$this->dir.'/'.$this->geturlquery().'.htm';    
        break;    
     
        case 'namequery':    
        $this->name=$this->dir.'/'.$this->geturlname().'-'.$this->geturlquery().'.htm';    
        break;    
     
        case 'nametime':    
        $this->name=$this->dir.'/'.$this->geturlname().'-'.$this->time.'.htm';    
        break;    
     
        }    
        return $this->name;    
    }    
     
    function createhtml($url='',$time=0,$dirname='',$htmlname='')    
    {    
        $this->url=$url?$url:$this->url;    
        $this->dirname=$dirname?$dirname:$this->dirname;    
        $this->time=$time?$time:$this->time;    
      //上面保证不重复地把变量赋予该类成员    
        if(emptyempty($htmlname))    
            $this->getname();    
        else   
            $this->name=$dirname.'/'.$htmlname;  //得到name    
     
        $content=file($this->url) or die("Failed to open the url ".$this->url." !");;    
     
///////////////关键步---用file读取$this->url    
     
     
        $content=join("",$content);    
        name,"w">$fp=@fopen($this->name,"w") or die("Failed to open the file ".$this->name." !");    
        if(@fwrite($fp,$content))    
        return true;    
        else   
        return false;    
        fclose($fp);    
    }    
/////////////////以name为名字生成html    
     
    function deletehtml($url='',$time=0,$dirname='')    
    {    
        $this->url=$url?$url:$this->url;    
        $this->time=$time?$time:$this->time;    
     
        $this->getname();    
     
        if(@unlink($this->name))    
        return true;    
        else   
        return false;    
    }    
     
    /**   
     * function::deletedir()   
     * 删除目录   
     * @param $file 目录名(不带/)   
     * @return    
     */   
     function deletedir($file)    
     {    
        if(file_exists($file))    
        {    
            if(is_dir($file))    
            {    
                $handle =opendir($file);    
                while(false!==($filename=readdir($handle)))    
                {    
                    if($filename!="."&$filename!="..")    
                      $this->deletedir($file."/".$filename);    
                }    
                closedir($handle);    
                rmdir($file);    
                return true;    
            }else{    
                unlink($file);    
            }    
        }    
    }    
     
}    
?>   